1 From 0daa521a1c8c29ffbefe6530f0d276e74e2749d0 Mon Sep 17 00:00:00 2001
2 From: Ping-Ke Shih <pkshih@realtek.com>
3 Date: Thu, 12 Dec 2024 13:42:03 +0800
4 Subject: [PATCH] wifi: rtw88: add __packed attribute to efuse layout struct
6 The layout struct of efuse should not do address alignment by compiler.
7 Otherwise it leads unexpected layout and size for certain arch suc as arm.
8 In x86-64, the results are identical before and after this patch.
10 Also adjust bit-field to prevent over adjacent byte to avoid warning:
11 rtw88/rtw8822b.h:66:1: note: offset of packed bit-field `res2` has changed in GCC 4.4
15 Reported-by: kernel test robot <lkp@intel.com>
16 Closes: https://lore.kernel.org/oe-kbuild-all/202412120131.qk0x6OhE-lkp@intel.com/
17 Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
18 Link: https://patch.msgid.link/20241212054203.135046-1-pkshih@realtek.com
20 drivers/net/wireless/realtek/rtw88/main.h | 4 ++--
21 drivers/net/wireless/realtek/rtw88/rtw8723x.h | 8 ++++----
22 drivers/net/wireless/realtek/rtw88/rtw8821c.h | 9 +++++----
23 drivers/net/wireless/realtek/rtw88/rtw8822b.h | 9 +++++----
24 drivers/net/wireless/realtek/rtw88/rtw8822c.h | 9 +++++----
25 5 files changed, 21 insertions(+), 18 deletions(-)
27 --- a/drivers/net/wireless/realtek/rtw88/main.h
28 +++ b/drivers/net/wireless/realtek/rtw88/main.h
29 @@ -510,12 +510,12 @@ struct rtw_5g_txpwr_idx {
30 struct rtw_5g_vht_ns_pwr_idx_diff vht_2s_diff;
31 struct rtw_5g_vht_ns_pwr_idx_diff vht_3s_diff;
32 struct rtw_5g_vht_ns_pwr_idx_diff vht_4s_diff;
36 struct rtw_txpwr_idx {
37 struct rtw_2g_txpwr_idx pwr_idx_2g;
38 struct rtw_5g_txpwr_idx pwr_idx_5g;
42 struct rtw_channel_params {
44 --- a/drivers/net/wireless/realtek/rtw88/rtw8723x.h
45 +++ b/drivers/net/wireless/realtek/rtw88/rtw8723x.h
46 @@ -47,7 +47,7 @@ struct rtw8723xe_efuse {
53 struct rtw8723xu_efuse {
54 u8 res4[48]; /* 0xd0 */
55 @@ -56,12 +56,12 @@ struct rtw8723xu_efuse {
56 u8 usb_option; /* 0x104 */
57 u8 res5[2]; /* 0x105 */
58 u8 mac_addr[ETH_ALEN]; /* 0x107 */
62 struct rtw8723xs_efuse {
63 u8 res4[0x4a]; /* 0xd0 */
64 u8 mac_addr[ETH_ALEN]; /* 0x11a */
68 struct rtw8723x_efuse {
70 @@ -96,7 +96,7 @@ struct rtw8723x_efuse {
71 struct rtw8723xu_efuse u;
72 struct rtw8723xs_efuse s;
77 #define RTW8723X_IQK_ADDA_REG_NUM 16
78 #define RTW8723X_IQK_MAC8_REG_NUM 3
79 --- a/drivers/net/wireless/realtek/rtw88/rtw8821c.h
80 +++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
81 @@ -27,7 +27,7 @@ struct rtw8821cu_efuse {
83 u8 package_type; /* 0x1fb */
88 struct rtw8821ce_efuse {
89 u8 mac_addr[ETH_ALEN]; /* 0xd0 */
90 @@ -47,7 +47,8 @@ struct rtw8821ce_efuse {
100 @@ -63,7 +64,7 @@ struct rtw8821ce_efuse {
102 u8 port_t_power_on_value:5;
107 struct rtw8821cs_efuse {
108 u8 res4[0x4a]; /* 0xd0 */
109 @@ -101,7 +102,7 @@ struct rtw8821c_efuse {
110 struct rtw8821cu_efuse u;
111 struct rtw8821cs_efuse s;
117 _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
118 --- a/drivers/net/wireless/realtek/rtw88/rtw8822b.h
119 +++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.h
120 @@ -27,7 +27,7 @@ struct rtw8822bu_efuse {
122 u8 package_type; /* 0x1fb */
127 struct rtw8822be_efuse {
128 u8 mac_addr[ETH_ALEN]; /* 0xd0 */
129 @@ -47,7 +47,8 @@ struct rtw8822be_efuse {
139 @@ -63,7 +64,7 @@ struct rtw8822be_efuse {
141 u8 port_t_power_on_value:5;
146 struct rtw8822bs_efuse {
147 u8 res4[0x4a]; /* 0xd0 */
148 @@ -103,7 +104,7 @@ struct rtw8822b_efuse {
149 struct rtw8822bu_efuse u;
150 struct rtw8822bs_efuse s;
156 _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
157 --- a/drivers/net/wireless/realtek/rtw88/rtw8822c.h
158 +++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.h
159 @@ -14,7 +14,7 @@ struct rtw8822cu_efuse {
161 u8 mac_addr[ETH_ALEN]; /* 0x157 */
166 struct rtw8822cs_efuse {
167 u8 res0[0x4a]; /* 0x120 */
168 @@ -39,7 +39,8 @@ struct rtw8822ce_efuse {
178 @@ -55,7 +56,7 @@ struct rtw8822ce_efuse {
180 u8 port_t_power_on_value:5;
185 struct rtw8822c_efuse {
187 @@ -102,7 +103,7 @@ struct rtw8822c_efuse {
188 struct rtw8822cu_efuse u;
189 struct rtw8822cs_efuse s;
194 enum rtw8822c_dpk_agc_phase {